home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / tangoint.lha / tango9.s < prev    next >
Encoding:
Text File  |  1988-07-19  |  16.1 KB  |  903 lines

  1. ***************************** 
  2. *  A BOB INTRO FOR CRYPTIC  *
  3. * CODED BY TANGO OF CRYPTIC *
  4. ***************************** 
  5.  
  6.     OPT C-
  7.     SECTION INTRO,CODE_C
  8.     INCDIR    DF1:
  9.     INCLUDE    DEFINITIONS
  10.     INCLUDE MACROS
  11.  
  12.  
  13. ; ** LOCAL MACROS **
  14.  
  15. BlitWait    Macro
  16. BlitW\@        Btst    #14,$dff002
  17.             Bne.s    BlitW\@
  18.             Endm
  19.  
  20. VPOS        MACRO
  21. W:            CMP.B    #$FF,$DFF006
  22.             BNE.S    W
  23.             ENDM
  24.                 
  25.         
  26. ; ** OPEN LIBRARIES, FORBID AND SWAP COPPER **
  27.  
  28. TAKEOVER:
  29.     LEA CUSTOM,a5        
  30.     LEA GFXLIB(PC),a1                 Point to 'graphics.library'
  31.     MOVEQ #0,D0                         Doesn't matter which version
  32.      CALLEXEC                         Get EXECBASE
  33.     JSR    -132(a6)                     task switching off (forbid)
  34.      JSR -$228(a6)                      Openlibrary
  35.      MOVE.L D0,GFXBASE                 Store library address
  36.     JSR  CYB_INIT        
  37.  
  38. ; ** SET UP SPRITE ZERO **
  39.     
  40.     MOVE.L    #SPRITE,D1
  41.     MOVE.W    D1,SP0L+2
  42.     SWAP    D1
  43.     MOVE.W    D1,SP0H+2
  44.     
  45.  
  46. ; ** SET UP BITPLANES IN COPPER **
  47.     
  48.      MOVE.L    BOBSPACE,D1                 FOR BOBS
  49.      MOVE.W    D1,BP1LO+2
  50.      SWAP    D1
  51.      MOVE.W    d1,BP1HI+2
  52.  
  53.      MOVE.L    BOBSPACE,D1                 FOR BOBS 
  54.      ADD.L    #10240,D1
  55.      MOVE.W    D1,BP2LO+2
  56.      SWAP    D1
  57.      MOVE.W    d1,BP2HI+2
  58.  
  59.      MOVE.L    #BLANK,D1                 FOR SCROLLER
  60.      MOVE.W    D1,ABP1LO+2
  61.      SWAP    D1
  62.      MOVE.W    d1,ABP1HI+2
  63.  
  64.     
  65.      MOVE.L GFXBASE,d0                Move gfxbase offset to d0
  66.      MOVE.L D0,A6                
  67.      MOVE.W #$80,DMACON(A5)            Turn off copper whilst changing it
  68.      MOVE.L $32(A6),WBCOPPER             Store old (WBench) copper address
  69.      MOVE.L #OURCOPPER,$32(A6)        Point to new copper list (our own)
  70.      MOVE.W #$8080,DMACON(a5)        re-enable copper
  71.  
  72.      MOVE.W #$8010,INTENA(a5)        
  73.      MOVE.L $6C,OLD                    Save work bench interrupt
  74.      MOVE.L #LEV3,$6C                This sets up a level 3 interrupt
  75.     MOVE.W INTENAR(A5),SYSTEMINTS
  76.         
  77.         
  78. ; ** EXIT ROUTINE - RESTORE COPPER, INTERRUPTS ETC... **
  79.  
  80. WAIT:     
  81.     VPOS                        
  82.     Bsr        CLEANSCREEN
  83.     BSR        GET_FORMATION
  84.     Bsr        PRINT_BOBS
  85.     BSR        GET_SCREEN
  86.     BSR        TESTSCROLL
  87.     BSR        GET_ANIM
  88.     BSR        MOVE_STARS
  89.  
  90.     BTST #6,$BFE001                
  91.      BNE.S    WAIT                
  92.     MOVE.L    4.W,A6                    EXECBASE
  93.      MOVE.L  OLD,$6C                    Restore system interrupts
  94.     MOVE.L  GFXBASE,A6
  95.      MOVE.W  #$80,DMACON(A5)            Disable DMA
  96.      MOVE.L  WBCOPPER,$32(A6)        Restore old copperlist
  97.      MOVE.W  #$8080,DMACON(A5)        Enable DMA
  98.      MOVE.W    SYSTEMINTS,D0            Systems interrupt
  99.      OR.W    #$C000,D0
  100.      MOVE.W    D0,INTENA(A5)            Enable OS interrupts
  101.     CLR.W    $DFF0A8                    Clear music
  102.     CLR.W    $DFF0B8
  103.     CLR.W    $DFF0C8
  104.     CLR.W    $DFF0D8
  105.     MOVE.W    #$F,$DFF096
  106.     CLR.L    D0                        No return code errors
  107.     RTS
  108.  
  109.  
  110. ; ** RETURN CODE ERROR **
  111.  
  112. ERROR:    
  113.     CALLEXEC
  114.     JSR        -138(A6)                Permit ( multi-tasking on )
  115.     MOVEQ    #0,D0                    Clear d0
  116.      RTS                                Return to AmigaDOS
  117.  
  118.  
  119. ; ** NEW INTERRUPT **
  120.  
  121. LEV3:
  122.     SAVE_ALL
  123.     LEA    CUSTOM,a5
  124.     AND #$10,INTREQR(A5)               Check if interrupt is from Copper 
  125.     BNE OUT
  126.     MOVE.W    #$8010,$9C                                
  127.  
  128.  
  129. ; ** MAIN ROUTINES CALLED EVERY VBI **
  130.  
  131.     JSR    CYB_MUSIC                    ; CAN STILL BE UNDER PROCESSOR
  132.                                     ; IF I WANT IT TO.
  133.  
  134.  
  135. ; ** RESTORE SYSTEMS INTERRUPT **
  136.  
  137. OUT:
  138.     RETURN_ALL
  139.     DC.W $4EF9                    
  140. OLD:
  141.     DC.L 0                        
  142.  
  143.  
  144. ; ** Move the sprites **
  145.  
  146. move_stars:
  147.     sub.b    #$1,x+1
  148.     sub.b    #$2,x+9
  149.     sub.b    #$1,x+17
  150.     sub.b    #$3,x+25
  151.     sub.b    #$2,x+33
  152.     sub.b    #$4,x+41
  153.     sub.b    #$2,x+49
  154.     sub.b    #$1,x+57
  155.     sub.b    #$3,x+65
  156.     sub.b    #$1,x+73
  157.     sub.b    #$2,x+81
  158.     sub.b    #$4,x+89
  159.     sub.b    #$3,x+97
  160.     sub.b    #$2,x+105
  161.     sub.b    #$1,x+113
  162.     sub.b    #$4,x+121
  163.     sub.b    #$3,x+129
  164.     sub.b    #$3,x+137
  165.     sub.b    #$2,x+145
  166.     sub.b    #$4,x+153
  167.     sub.b    #$1,x+161
  168.     sub.b    #$3,x+169
  169.     sub.b    #$1,x+177
  170.     sub.b    #$2,x+185
  171.     sub.b    #$4,x+193
  172.     sub.b    #$1,x+201
  173.     sub.b    #$3,x+209
  174.     sub.b    #$1,x+217
  175.     sub.b    #$2,x+225
  176.     sub.b    #$2,x+233
  177.     rts
  178.  
  179.  
  180. ; ** SCREEN NEEDS TO BE DOUBLE BUFFERED IF MORE THAN 20 BOBS **
  181.  
  182. FLIPSCREENS:
  183.     Move.l        Buffer(pc),D0    Pointer To Buffer Poiner
  184.     Eor.l        #10240*2,D0        Buffer With Size Of Screen
  185.     Move.l        D0,Buffer        Store It
  186.     Add.l        #ActSpace,D0    Add Screen To It
  187.     Move.l        D0,BobSpace        Store It 
  188.     Rts
  189.  
  190. GET_SCREEN:
  191.     Move.l    BobSpace,D0            
  192.     MOVE.W    D0,BP1LO+2
  193.     SWAP    D0
  194.     MOVE.W    D0,BP1HI+2
  195.     
  196.     Move.l    BobSpace,D0            
  197.     ADD.L    #10240,D0
  198.     MOVE.W    D0,BP2LO+2
  199.     SWAP    D0
  200.     MOVE.W    D0,BP2HI+2
  201.     RTS
  202.  
  203.  
  204. ; ** CLEAR THE ENTIRE SCREEN **
  205.  
  206. CLEANSCREEN:
  207.     Bsr            FLIPSCREENS
  208.     Lea            Custom,A1
  209.     Move.l        BobSpace,a2        
  210.     LEA            BLTDPTH(A1),A3
  211.     LEA            BLTSIZE(A1),A4
  212.     Move.l        A2,(A3)
  213.     move.w        #%0000000110000000,BltCon0(A1)    
  214.     Move.w        #$0000,BltCon1(A1)    
  215.     Move.w        #0,BltdMod(A1)        
  216.     Move.l        #-1,Bltafwm(A1)        
  217.     Move.w        #450*64+20,(A4)
  218.     rts
  219.  
  220.  
  221. ; ** BOB ANIMATION ROUTINE CALLED EVERY VBI **
  222.  
  223. GET_ANIM:
  224.     CMP.L    #4,ANDEL
  225.     BEQ.S    GET_ANIMS
  226.     ADD.L    #1,ANDEL
  227.     RTS
  228. GET_ANIMS:
  229.     CLR.L    ANDEL
  230.     LEA        BANIM,A0
  231.     LEA        ANIM,A2
  232.     ADD.L    ANT,A2
  233.     CMP.L    #-1,(A2)
  234.     BEQ.S    RST_ANT
  235.     MOVE.L    ANT,D2
  236.     MOVE.L    (A2),WHICH_FRAME
  237.     MOVE.L    (A0,D2),MASK_WHICH_FRAME
  238.     ADD.L    #4,ANT
  239.     CLR.L    D2
  240.     BRA        BLITBOB
  241. RST_ANT:
  242.     CLR.L    ANT
  243.     RTS
  244.  
  245. ANIM:    DC.L    BOBS,BOBS+6,BOBS+12,BOBS+18,BOBS+24,BOBS+30
  246.         DC.L    BOBS+(32*40),BOBS+(32*40)+6,BOBS+(32*40)+12,BOBS+(32*40)+18
  247.         DC.L    BOBS+(32*40)+12,BOBS+(32*40)+6,BOBS+(32*40),BOBS+30,BOBS+24,BOBS+18
  248.         DC.L    BOBS+12,BOBS+6,-1
  249. BANIM:    DC.L    BOBMASK,BOBMASK+6,BOBMASK+12,BOBMASK+18,BOBMASK+24,BOBMASK+30
  250.         DC.L    BOBMASK+(32*40),BOBMASK+(32*40)+6,BOBMASK+(32*40)+12,BOBMASK+(32*40)+18
  251.         DC.L    BOBMASK+(32*40)+12,BOBMASK+(32*40)+6,BOBMASK+(32*40),BOBMASK+30,BOBMASK+24
  252.         DC.L    BOBMASK+18,BOBMASK+12,BOBMASK+6,-1
  253.         EVEN    
  254.     
  255.  
  256. ; ** BLIT OBJECT TO SCREEN **
  257.  
  258. ; ENTRIES:
  259. ;       D1    X              
  260. ;      D2    Y              
  261. ;      D3    Bob Number     
  262. ;      A3    Screen Address 
  263.  
  264.  
  265. BlitBob:
  266.     MOVE.L        XPOS(pc),D1
  267.     MOVE.L        YPOS(pc),D2
  268.     MOVE.L        BOBSPACE,A3    
  269.     Move.w        #$0FCA,D6
  270.     MOVE.L        MASK_WHICH_FRAME,A0        ; WHICH BOB MASK
  271.     MOVE.L        WHICH_FRAME,A2            ; WHICH BOB
  272.     Ror.l        #4,D1
  273.     Add.w        D1,D1
  274.     Mulu        #40,D2
  275.     Add.w        D1,D2
  276.     Add.l        D2,a3
  277.     Swap        D1
  278.     Or.w        D1,D6
  279.     Lea            Custom,a1
  280.     CLR.L        D5
  281.     MOVE.W        #34,D4
  282.     MOVE.W        #32*64+3,D5
  283.     LEA         BLTSIZE(A1),A4            
  284.     LEA            BLTAPTH(A1),A6
  285.     LEA            BLTDPTH(A1),A5
  286.     BlitWait
  287.     Move.w        D4,Bltamod(A1)
  288.     Move.w        D4,Bltbmod(A1)
  289.     Move.w        D4,Bltcmod(A1)
  290.     Move.w        D4,Bltdmod(A1)
  291.     Move.l        A0,(A6)
  292.     Move.l        A2,Bltbpth(A1)
  293.     Move.l        A3,Bltcpth(A1)
  294.     Move.l        A3,(A5)
  295.     Move.w        D1,BltCon1(A1)
  296.     Move.w        D6,BltCon0(A1)
  297.     Move.w        D5,(A4)
  298.     LEA            40*70(A2),A2
  299.     LEA            10240(A3),A3
  300.     BlitWait
  301.     Move.l        A0,Bltapth(A1)
  302.     Move.l        A2,Bltbpth(A1)
  303.     Move.l        A3,Bltcpth(A1)
  304.     Move.l        A3,(A5)
  305.     Move.w        D5,(A4)
  306.     Rts    
  307.  
  308.  
  309. PRINT_BOBS:
  310.     MOVE.L    WHICH_FRM,A1        Get ptr To Bobs
  311.     MOVE.L    (a1)+,d1            Number Of Bobs
  312. MoveB:
  313.     Move.l    (a1),d2                Get x Val
  314.     add.l    xspeed,d2            Incriment it
  315.     Cmp.l    #xposend,d2            End Of SinTab ???
  316.     blt        misa                If Lower Miss
  317.     Move.l    #0,d2                Clear The Bastard
  318. Misa:
  319.     Move.l    d2,(a1)+            Store it
  320.     Move.l    (a1),d2                Get y Pos
  321.     add.l    yspeed,d2            Incriment It
  322.     Cmp.l    #yposend,d2            REached End
  323.     blt        misb                Less Than Miss
  324.     Move.l    #0,d2                Reset
  325. Misb:
  326.     Move.l    d2,(a1)+            Store It
  327.     dbf        d1,Moveb            Loop
  328.  
  329.  
  330. ; ** PLOT THE BOBS FROM BOBTABLE **
  331.  
  332.     move.l    #4,d2
  333.     move.l    #8,d3
  334.     move.l    which_frm,a4
  335.     move.l    (a4),d7            ; how many bobs to print
  336. bloop:
  337.     save_all
  338.     move.l    (a4,d2),xpos        
  339.     move.l    (a4,d3),ypos
  340.     Save_All
  341.  
  342.     Lea        Xposi,A1    ; GET XPOS IN SINETABLE
  343.     Move.l    Xpos(pc),d1            ; 
  344.     Add.l    d1,d1            ; CONVERT TO WORDS FOR SINETABLE
  345.     Add.l    d1,A1            ; ADD TO SINETABLE
  346.     Move.w    (A1),Xpos+2        
  347.         
  348.     Lea        Yposi,A1
  349.     Move.l    Ypos(pc),d1
  350.     Add.l    d1,d1
  351.     Add.l    d1,A1
  352.     Move.w    (A1),Ypos+2
  353.     Return_All
  354.     bsr        blitbob
  355.     return_all
  356.     add.l    #8,d2            ; get next xpos
  357.     add.l    #8,d3            ; get next ypos
  358.     dbf        d7,bloop
  359.     rts
  360.  
  361.  
  362. ; ** GET FORMATION **
  363.  
  364. GET_FORMATION:
  365.     CMP.L    #200,DELTA
  366.     BEQ.S    READ_MOUSE
  367.     ADD.L    #1,DELTA
  368.     RTS
  369. READ_MOUSE:
  370.     CLR.L    DELTA
  371.     LEA        FORMATIONS,A3
  372.     ADD.L    FNT,A3
  373.     CMP.L    #-1,(A3)
  374.     BEQ.S    RST_FNT
  375.     MOVE.L    (A3),WHICH_FRM
  376.     ADD.L    #4,FNT
  377.     RTS
  378. RST_FNT:
  379.     CLR.L    FNT
  380.     RTS
  381.  
  382. DELTA:        DC.L    0    
  383. FNT:        DC.L    0
  384. FORMATIONS:    DC.L    BOBFORM,BOBFORM2,BOBFORM3,BOBFORM5,BOBFORM6,BOBFORM7,BOBFORM4
  385.             DC.L    BOBFORM8,BOBFORM9,BOBFORM10,BOBFORM11
  386.             DC.L    -1
  387.             EVEN
  388.  
  389.  
  390.  
  391. ; ** THE SCROLL ROUTINE **
  392.  
  393. TESTSCROLL:
  394.     TST.L    STOPPER
  395.     BEQ.S    SCROLL
  396.     SUB.L    #1,STOPPER
  397.     RTS
  398. SCROLL:
  399.     CMP.L    #15,VAL
  400.     BLO.S    COARSE_SCROLL_IT
  401.     BSR        BLIT_CHAR
  402.     CLR.L    VAL
  403. COARSE_SCROLL_IT:
  404.     BSR        COARSE
  405.     RTS                            
  406.     
  407.     
  408. ; ** BLIT LETTER ON THE SCREEN **
  409.  
  410. BLIT_CHAR:
  411.     JSR        TEXT
  412.     LEA        CUSTOM,A5                Get custom chip address
  413.     MOVE.L    SCREENX,A0                 Can~t see this picture !!
  414.     MOVE.L    #FONT,A1                 Put font in blitter source
  415.     ADD.L    D1,a1
  416. BLIT_TEST:
  417.     BTST    #14,$DFF002
  418.     BNE        BLIT_TEST
  419.     MOVE.L    #-1,BLTAFWM(A5)
  420.     MOVE.L    a0,BLTDPTH(A5)             Blitter dest D (BOTTOM OF SCREEN)
  421.     MOVE.L    a1,BLTAPTH(A5)             Blitter source A (SCROLLING FONT)
  422.     MOVE.W    #38,BLTAMOD(A5)             Modulo (20-1)*2
  423.     MOVE.W    #38,BLTDMOD(A5)             Modulo (20-1)*2
  424.     MOVE.W    #$9f0,BLTCON0(A5)         Minterms D=A
  425.     CLR.W    BLTCON1(A5)                 Set Ascending mode
  426.      MOVE.W    #16*64+1,BLTSIZE(A5)     Blit size (SIZE OF FONT)
  427.     RTS                                  Return
  428.  
  429.  
  430. ; ** BLITSHIFT THE ENTIRE SCROLL LINE **
  431.  
  432. COARSE:
  433.     LEA        CUSTOM,A5                 
  434.     MOVE.L    SCREENX,A0                
  435.     MOVE.L    A0,A1
  436.     ADD.L    #2,A1
  437. BLIT_WAIT:
  438.     BTST    #14,$DFF002
  439.     BNE        BLIT_WAIT
  440.     ADD.L    #4,VAL                    ; (1 for slower)
  441.     MOVE    #12,D7                    ; Amount of pixels to shift(15 for slow)
  442.     ROR        #4,D7                    ; Set to correct bits (12-15)
  443.     OR        #%100111110000,D7        
  444.     MOVE.L    #-1,BLTAFWM(A5)
  445.     MOVE.L    A1,BLTAPTH(A5)
  446.     MOVE.L    A0,BLTDPTH(A5)
  447.     MOVE.W    #0,BLTAMOD(A5)
  448.     MOVE.W    #0,BLTDMOD(A5)
  449.     MOVE.W    D7,BLTCON0(A5)    
  450.     MOVE.W    #16*64+20,BLTSIZE(A5)
  451.     RTS    
  452.  
  453.  
  454. BLIT_WAITMAN:
  455.     BTST    #14,$DFF002
  456.     BNE.S    BLIT_WAITMAN
  457.     RTS
  458.     
  459.  
  460. ; ** CHARACTER DECODER ROUTINE **
  461.  
  462. TEXT:
  463.     MOVE.L    ACURENT,A2                Get message
  464.     CLR.L    D1                        
  465.     MOVE.B    (A2)+,D1                Update it
  466.     MOVE.B    D1,LETTER                Store in offset
  467.     CMP.B    #255,D1                    Check for end of message
  468.     BEQ.W    RST_TEXT                If equal, then reset
  469.     CMP.B    #254,D1
  470.     BEQ        STOP
  471.     SUB.L    #32,D1                    Subract 32 (ie space)
  472.     ASL        D1                        Times by 2 
  473.     MOVE.L    A2,ACURENT                Update ACURENT
  474.     CMP.B    #"4",LETTER                Is letter "K" or larger
  475.     BPL.S    ADD_MORE                If larger then add on
  476.     RTS                                Return
  477. ADD_MORE:
  478.     CMP.B    #"H",LETTER                Is letter "U" or larger
  479.     BPL.S    ADD_MORE2                If larger then add on
  480.     ADD.L    #40*15,D1                Get next line down (KLMNOPQRST)
  481.     RTS
  482. ADD_MORE2:
  483.     ADD.L    #40*30,D1                Get next line down (UVWXYZ0123)
  484.     RTS
  485. RST_TEXT:
  486.     MOVE.L    #0,D1
  487.     MOVE.L    #MESSAGE,D2                Get begining of text
  488.     MOVE.L    D2,ACURENT                Reset to begining
  489.     RTS                                Return
  490. STOP:
  491.     MOVE.L    #0,D1
  492.     ADD.L    #1,ACURENT
  493.     MOVE.L    #150,STOPPER
  494.     RTS
  495.  
  496.  
  497. MESSAGE:
  498. ; 254=STOP,255=END.
  499.  
  500.     DC.B    "         CRYPTIC STRIKE BACK WITH AN INTRO TO PRONOUCE ABOUT THEIR CHAT MAG COMING"
  501.     DC.B    " YOUR WAY SHORTLY.  THIS INTRO WAS CODED BY TANGO WHO ALSO DID THE BOB ANIMATIONS   MUSIC WAS SCORED BY COLIN OF CRYPTIC    "
  502.     DC.B    "  THE CHAT MAG NEEDS YOUR HELP !!!  PLEASE SEND ANY ARTICLES YOU HAVE OR ANY OPINIONS YOU WANT TO EXPRESS"
  503.     DC.B    " TO ME (TANGO) AT THE FOLLOWING ADDRESS......."
  504.     DC.B    "       368 HIGHFIELD RD          FARNWORTH           BOLTON         LANCASHIRE       BL4 OPG"
  505.     DC.B    "         I'LL SHOW YOU THAT ADDRESS AGAIN........."
  506.     DC.B    "       368 HIGHFIELD RD          FARNWORTH           BOLTON         LANCASHIRE       BL4 OPG"
  507.     DC.B    "       OR YOU CAN PHONE ME ON THIS NUMBER     0204 795267"
  508.     DC.B    "   OR PHONE R-TYME ON THIS NUMBER  021 327 5931"
  509.     DC.B    "    WELL I'LL BE SEEING YOU IN THE CHAT MAG SO WATCH OUT FOR IT AND STAY COOL       TEXT RESTARTS"
  510.     DC.B    "                            "
  511.     DC.B    255
  512.     EVEN
  513.  
  514.  
  515. ; ** NOISE TRACKER PLAY ROUTINE TO BE INCLUDED HERE **
  516.  
  517.     INCLUDE    SOURCE/NT.S
  518.  
  519.     EVEN
  520.  
  521.  
  522. ; ** COPPERLIST **
  523.  
  524. OURCOPPER:
  525. SP0L:    DC.W        SPR0PTL,$0000
  526. SP0H:    DC.W        SPR0PTH,$0000
  527.         DC.W        BPL1MOD,0
  528.         DC.W        BPL2MOD,0
  529.         DC.W        BplCon1,$00
  530.         DC.W        diwstrt,$3881-32
  531.         DC.W        diwstop,$3CC1+32        
  532.         DC.W        ddfstrt,$0038        
  533.         DC.W        ddfstop,$00D0        
  534.         DC.W        Bplcon0,$2200
  535.         DC.W        COLOR00,$000
  536.         DC.W        COLOR01,$F00
  537.         DC.W        COLOR02,$00F
  538.         DC.W        COLOR03,$FFF
  539. BP1LO:    DC.W        Bpl1ptl,$0000
  540. BP1HI:    DC.W        Bpl1pth,$0000
  541. BP2LO:    DC.W        Bpl2ptl,$0000
  542. BP2HI:    DC.W        Bpl2pth,$0000
  543.         WAIT        $EA09,$FFFE
  544.         DC.W        BPL1MOD,-120
  545.         DC.W        BPL2MOD,-120
  546.         SET_PAL
  547.         WAIT        $1409,$FFFE
  548. ABP1LO:    DC.W        Bpl1ptl,$0000
  549. ABP1HI:    DC.W        Bpl1pth,$0000
  550.         DC.W        BPLCON0,$1200
  551.         DC.W        BPL1MOD,0
  552.         DC.W        BPL2MOD,0
  553.         DC.W        diwstrt,$3881+16        
  554.         DC.W        diwstop,$3CC1-16        
  555.         DC.W        COLOR01,$0F0
  556.         WAIT        $1A09,$FFFE
  557.         DC.W        COLOR01,$3F3
  558.         WAIT        $1B09,$FFFE
  559.         DC.W        COLOR01,$6F6
  560.         WAIT        $1C09,$FFFE
  561.         DC.W        COLOR01,$9F9
  562.         WAIT        $1D09,$FFFE
  563.         DC.W        COLOR01,$CFC
  564.         WAIT        $1E09,$FFFE
  565.         DC.W        COLOR01,$FFF
  566.         WAIT        $1F09,$FFFE
  567.         DC.W        COLOR01,$CCF
  568.         WAIT        $2009,$FFFE
  569.         DC.W        COLOR01,$99F
  570.         END_COPPER
  571.  
  572.  
  573. ; ** LOCAL CONSTANTS **
  574.  
  575. WBCOPPER:            DC.L    0
  576. GFXLIB:                DC.B     "graphics.library",0
  577. GFXBASE:            DC.L    0
  578. SYSTEMINTS:            DC.L    0
  579. XPOS:                DC.L    0
  580. YPOS:                DC.L    0
  581. Buffer                DC.L    0
  582. xspeed:                dc.l    5
  583. yspeed:                dc.l    4
  584. val:                dc.l    0
  585. stopper:            dc.l    0
  586. acurent:            dc.l    message
  587. screenx:            dc.l    blank+(40*4)
  588. letter:                dc.l    0
  589. which_frame:        dc.l    BOBS
  590. mask_which_frame:    dc.l    BOBMASK
  591. ant:                dc.l    0
  592. andel:                dc.l    0
  593. which_frm:            dc.l    BobForm4
  594.  
  595.  
  596. ; ** BINARIES **
  597.     EVEN
  598. SPRITE:
  599.     INCLUDE    SPRITE.LIST
  600. CYB_DATA:
  601.     INCBIN    "MOD.BIG DEMO"
  602.     EVEN        
  603. BobSpace:
  604.     Dc.l    ActSpace
  605. ActSpace:
  606.     Dcb.b    10240*4,0
  607. Bobs:
  608.     Incbin    Bobs2.Bin
  609. BobMask:    
  610.     Incbin    Bobsmask2.bin
  611.     EVEN
  612. BLANK:
  613.     DCB.B    40*56,0
  614.     EVEN
  615. font:
  616.     incbin    neatfont.bin
  617.     even
  618.         
  619.  
  620. *****************************************************************************************************
  621.  
  622. ; ** ALL BOB FORMATIONS ARE HERE **
  623.  
  624.             EVEN
  625. bobform:
  626.             dc.l    12-1                ; no. of bobs
  627.             dc.l    10,10                ; xpos,ypos (x,y)
  628.             dc.l    20,10
  629.             dc.l    30,10
  630.             dc.l    40,10
  631.             dc.l    50,10
  632.             dc.l    60,10
  633.             dc.l    70,10
  634.             dc.l    40,20
  635.             dc.l    40,30
  636.             dc.l    40,40
  637.             dc.l    40,50
  638.             dc.l    40,60
  639. bobform2:
  640.             dc.l    18-1
  641.             dc.l    10,100        
  642.             dc.l    20,100
  643.             dc.l    30,100
  644.             dc.l    40,100
  645.             dc.l    50,100
  646.             dc.l    60,100
  647.             dc.l    10,120
  648.             dc.l    60,120
  649.             dc.l    10,140
  650.             dc.l    60,140
  651.             dc.l    10,160
  652.             dc.l    60,160
  653.             dc.l    10,180
  654.             dc.l    20,180
  655.             dc.l    30,180
  656.             dc.l    40,180
  657.             dc.l    50,180
  658.             dc.l    60,180
  659. bobform3:
  660.             dc.l    20-1
  661.             dc.l    1,10
  662.             dc.l    1,20
  663.             dc.l    1,30
  664.             dc.l    1,40
  665.             dc.l    1,50
  666.             dc.l    1,60
  667.             dc.l    1,70
  668.             dc.l    1,80
  669.             dc.l    1,90
  670.             dc.l    1,100
  671.             dc.l    1,110
  672.             dc.l    1,120
  673.             dc.l    1,130
  674.             dc.l    1,140
  675.             dc.l    1,150
  676.             dc.l    1,160
  677.             dc.l    1,170
  678.             dc.l    1,180
  679.             dc.l    1,190
  680.             dc.l    1,200
  681. bobform4:
  682.             dc.l    24-1
  683.             DC.L    10,240
  684.             DC.L    20,230
  685.             DC.L    30,220
  686.             DC.L    40,210
  687.             DC.L    50,200
  688.             DC.L    60,190
  689.             DC.L    70,180
  690.             DC.L    80,170
  691.             DC.L    90,160
  692.             DC.L    100,150
  693.             DC.L    110,140
  694.             DC.L    120,130
  695.             DC.L    130,120
  696.             DC.L    140,110
  697.             DC.L    150,100
  698.             DC.L    160,90
  699.             DC.L    170,80
  700.             DC.L    180,70
  701.             DC.L    190,60
  702.             DC.L    200,50
  703.             DC.L    210,40
  704.             DC.L    220,30
  705.             DC.L    230,20
  706.             DC.L    240,10
  707. bobform5:
  708.             dc.l    8-1
  709.             dc.l    80,10
  710.             dc.l    60,30
  711.             dc.l    100,30
  712.             dc.l    40,50
  713.             dc.l    120,50
  714.             dc.l    60,70
  715.             dc.l    100,70
  716.             dc.l    80,90                
  717. bobform6:
  718.             dc.l    19-1
  719.             dc.l    10,10
  720.             dc.l    20,20
  721.             dc.l    30,30
  722.             dc.l    40,40
  723.             dc.l    50,50
  724.             dc.l    60,60
  725.             dc.l    70,70
  726.             dc.l    80,80
  727.             dc.l    90,90
  728.             dc.l    100,100
  729.             dc.l    90,110
  730.             dc.l    80,120
  731.             dc.l    70,130
  732.             dc.l    60,140
  733.             dc.l    50,150
  734.             dc.l    40,160
  735.             dc.l    30,170
  736.             dc.l    20,180
  737.             dc.l    10,190
  738. bobform7:
  739.             dc.l    25-1
  740.             dc.l    10,20
  741.             dc.l    11,111
  742.             dc.l    22,230
  743.             dc.l    80,43
  744.             dc.l    90,23
  745.             dc.l    43,21
  746.             dc.l    65,76
  747.             dc.l    32,55
  748.             dc.l    80,23
  749.             dc.l    43,2
  750.             dc.l    97,76
  751.             dc.l    65,23
  752.             dc.l    98,98
  753.             dc.l    89,79
  754.             dc.l    54,32
  755.             dc.l    84,98
  756.             dc.l    87,43
  757.             dc.l    98,78
  758.             dc.l    33,4
  759.             dc.l    76,98
  760.             dc.l    98,32
  761.             dc.l    87,32
  762.             dc.l    65,21
  763.             dc.l    93,213
  764.             dc.l    98,2            
  765. bobform8:
  766.             dc.l    29-1
  767.             dc.l    10,10
  768.             dc.l    10,20
  769.             dc.l    10,30
  770.             dc.l    10,30
  771.             dc.l    10,40
  772.             dc.l    10,50
  773.             dc.l    10,60
  774.             dc.l    10,70
  775.             dc.l    10,80
  776.             dc.l    10,90
  777.             dc.l    10,100
  778.             dc.l    10,110
  779.             dc.l    50,120
  780.             dc.l    50,130
  781.             dc.l    50,140
  782.             dc.l    50,150
  783.             dc.l    50,160
  784.             dc.l    50,170
  785.             dc.l    50,180
  786.             dc.l    50,190
  787.             dc.l    60,200
  788.             dc.l    60,210
  789.             dc.l    60,220
  790.             dc.l    60,230
  791.             dc.l    60,240
  792.             dc.l    60,250
  793.             dc.l    100,100
  794.             dc.l    110,120
  795.             dc.l    120,130
  796. bobform9:
  797.             dc.l    27-1
  798.             dc.l    10,10
  799.             dc.l    20,10
  800.             dc.l    30,10
  801.             dc.l    40,10
  802.             dc.l    50,10
  803.             dc.l    60,10
  804.             dc.l    10,30
  805.             dc.l    20,30
  806.             dc.l    30,30
  807.             dc.l    40,30
  808.             dc.l    50,30
  809.             dc.l    60,30
  810.             dc.l    10,50
  811.             dc.l    20,50
  812.             dc.l    30,50
  813.             dc.l    40,50
  814.             dc.l    50,50
  815.             dc.l    60,50
  816.             dc.l    10,70
  817.             dc.l    20,70
  818.             dc.l    30,70
  819.             dc.l    40,70
  820.             dc.l    50,70
  821.             dc.l    60,70
  822.             dc.l    20,90
  823.             dc.l    30,90
  824.             dc.l    40,90
  825. bobform10:
  826.             dc.l    25-1
  827.             dc.l    10,10
  828.             dc.l    20,10
  829.             dc.l    30,10
  830.             dc.l    40,10
  831.             dc.l    50,10
  832.             dc.l    10,30
  833.             dc.l    20,30
  834.             dc.l    30,30
  835.             dc.l    40,30
  836.             dc.l    50,30
  837.             dc.l    10,50
  838.             dc.l    20,50
  839.             dc.l    30,50
  840.             dc.l    40,50
  841.             dc.l    50,50
  842.             dc.l    10,70
  843.             dc.l    20,70
  844.             dc.l    30,70
  845.             dc.l    40,70
  846.             dc.l    50,70
  847.             dc.l    10,90
  848.             dc.l    20,90
  849.             dc.l    30,90
  850.             dc.l    40,90
  851.             dc.l    50,90                        
  852. bobform11:
  853.             dc.l    24-1
  854.             dc.l    10,20
  855.             dc.l    20,30
  856.             dc.l    30,40
  857.             dc.l    40,50
  858.             dc.l    50,60
  859.             dc.l    60,70
  860.             dc.l    70,80
  861.             dc.l    80,90
  862.             dc.l    90,100
  863.             dc.l    100,110
  864.             dc.l    110,120
  865.             dc.l    120,130
  866.             dc.l    130,140
  867.             dc.l    140,150
  868.             dc.l    150,160
  869.             dc.l    160,170
  870.             dc.l    170,180
  871.             dc.l    180,190
  872.             dc.l    190,200
  873.             dc.l    200,210
  874.             dc.l    210,220
  875.             dc.l    220,230
  876.             dc.l    230,240
  877.             dc.l    240,250
  878.             
  879.  
  880. ; ** XPOS SINETABLE AND YPOS SINETABLE **
  881.  
  882.     EVEN
  883. Xposi        Incbin    ypos            
  884. XPOSEND        EQU        ((*-XPOSI)/2)-1
  885. YPosi        Incbin    xpos
  886. yPOSEND        EQU        ((*-YPOSI)/2)-1
  887.  
  888.  
  889.  
  890.  
  891.     
  892.  
  893.  
  894.     
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.